// ES2017 标准引入了 async 函数，使得异步操作变得更加方便。
// async 函数是什么？一句话，它就是 Generator 函数的语法糖。

/*
  （1）内置执行器。
  （2）更好的语义。
  （3）更广的适用性
  （4）返回值是 Promise。
*/
const fs = require("fs");
const delay = () => {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve();
    }, 2000);
  });
};
const read = (url) => {
  return new Promise((resolve) => {
    fs.readFile(url, "utf-8", (err, data) => {
      if (err) throw err;
      resolve(data);
    });
  });
};

const fn = async () => {
  await delay();
  const res = await read("./01-js的数据类型.js");
  console.log(res);
  await delay();
  const res2 = await read("./02-用过es6的哪些新特性.js");
  console.log(res2);
};

fn();
